package com.sky.service.admin;

import com.sky.dto.EmployeeDTO;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.dto.EmployeePageQueryDTO;
import com.sky.pojo.Employee;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.vo.EmployeeLoginVO;

/**
 * 员工管理业务层
 *
 * @Author: Zhy
 * @Date: 2025-01-14 14:40
 * @Version: 1.0
 */
public interface EmployeeService {

	/**
	 * 员工登录
	 *
	 * @param: employeeLoginDTO
	 * @return:
	 */
	Result<EmployeeLoginVO> login(EmployeeLoginDTO employeeLoginDTO);

	/**
	 * 新增员工
	 *
	 * @return:
	 * @param: employeeDTO 员工信息参数
	 */
	Result<String> addEmployee(EmployeeDTO employeeDTO);

	/**
	 * 分页查询员工信息
	 *
	 * @return:
	 * @param: employeePageQueryDTO 分页查询参数
	 */
	PageResult selectPageQuery(EmployeePageQueryDTO employeePageQueryDTO);

	/**
	 * 根据 id 查询员工信息
	 *
	 * @return:
	 * @param: id 员工id
	 */
	Employee getEmployeeById(Long id);

	/**
	 * 更新员工账号状态
	 *
	 * @return:
	 * @param: status 账号状态
	 * @param: id 员工id
	 */
	void startOrStop(Integer status, Long id);

	/**
	 * 更新员工信息
	 *
	 * @return:
	 * @param: employeeDTO 员工信息
	 */
	void updateEmployee(EmployeeDTO employeeDTO);
}
